* @ingroup SpecialPage
*/
-use MediaWiki\Block\BlockRestriction;
use MediaWiki\Block\Restriction\PageRestriction;
use MediaWiki\Block\Restriction\NamespaceRestriction;
+use MediaWiki\MediaWikiServices;
/**
* A special page that allows users with 'block' right to block users from
* @return array
*/
protected function getFormFields() {
- global $wgBlockAllowsUTEdit;
+ $conf = $this->getConfig();
+ $enablePartialBlocks = $conf->get( 'EnablePartialBlocks' );
+ $blockAllowsUTEdit = $conf->get( 'BlockAllowsUTEdit' );
$this->getOutput()->enableOOUI();
$suggestedDurations = self::getSuggestedDurations();
- $conf = $this->getConfig();
- $enablePartialBlocks = $conf->get( 'EnablePartialBlocks' );
-
$a = [];
$a['Target'] = [
];
}
- if ( $wgBlockAllowsUTEdit ) {
+ if ( $blockAllowsUTEdit ) {
$a['DisableUTEdit'] = [
'type' => 'check',
'label-message' => 'ipb-disableusertalk',
'cssclass' => 'mw-block-confirm',
];
- // Block Id if a block already exists matching the target
- $a['BlockId'] = [
- 'type' => 'hidden',
- 'default' => '',
- ];
-
- // Has the form been submitted
- $a['WasPosted'] = [
- 'type' => 'hidden',
- 'default' => '',
- ];
-
$this->maybeAlterFormDefaults( $a );
// Allow extensions to add more fields
$fields['Expiry']['default'] = wfTimestamp( TS_RFC2822, $block->getExpiry() );
}
- $fields['BlockId']['default'] = $block->getId();
-
$this->alreadyBlocked = true;
$this->preErrors[] = [ 'ipb-needreblock', wfEscapeWikiText( (string)$block->getTarget() ) ];
}
- if ( $this->getRequest()->wasPosted() ) {
- $fields['WasPosted']['default'] = true;
+ if ( $this->alreadyBlocked || $this->getRequest()->wasPosted()
+ || $this->getRequest()->getCheck( 'wpCreateAccount' )
+ ) {
+ $this->getOutput()->addJsConfigVars( 'wgCreateAccountDirty', true );
}
# We always need confirmation to do HideUser
* the HTMLForm
* @param WebRequest|null $request Optionally try and get data from a request too
* @return array [ User|string|null, Block::TYPE_ constant|null ]
+ * @phan-return array{0:User|string|null,1:int|null}
*/
public static function getTargetAndType( $par, WebRequest $request = null ) {
$i = 0;
$currentBlock->isSitewide( $block->isSitewide() );
// Set the block id of the restrictions.
+ $blockRestrictionStore = MediaWikiServices::getInstance()->getBlockRestrictionStore();
$currentBlock->setRestrictions(
- BlockRestriction::setBlockId( $currentBlock->getId(), $restrictions )
+ $blockRestrictionStore->setBlockId( $currentBlock->getId(), $restrictions )
);
}
*
* @todo strtotime() only accepts English strings. This means the expiry input
* can only be specified in English.
- * @see https://secure.php.net/manual/en/function.strtotime.php
+ * @see https://www.php.net/manual/en/function.strtotime.php
*
* @param string $expiry Whatever was typed into the form
* @return string|bool Timestamp or 'infinity' or false on error.